草庐IT

Python Tkinter 多选列表框

全部标签

c++ - 如何从 C# 解析/简单分析 C/C++ 代码以获取方法列表

我需要浏览一个C/C++文件并提取类和方法的列表以及它们在文件中的位置。libclang是最佳选择吗?还是任务“太多”了?只寻找配对括号会更好吗?如果选择libclang:有没有办法从C#调用它?谢谢! 最佳答案 你可以考虑ctags,可在许多平台上使用。输出很容易解析,并且包含您需要的全部信息。更多信息对于您的问题,我不得不查看许多可用的选项,过了一会儿我找到了。例如:ctags-N-x--c-kinds=+pcrowd.*产生这个输出CrowdSimclass44crowd.hclassCrowdSimCrowdSimfunct

c++ - 为什么我不能用列表初始化来初始化 std::vector

为什么这行不通?#includestructA{templatevoidf(conststd::vector&){}};intmain(){Aa;a.f({1,2,3});} 最佳答案 你可以初始化一个std::vector与列表初始化。但是,您不能推断模板参数T使用std::vector在参数列表中并向函数传递不是std::vector的东西.例如,这有效:#includetemplatestructA{voidf(conststd::vector&){}};intmain(){Aa;a.f({1,2,3});}

c++ - 为什么从初始化列表中初始化 vector 时不使用 move 构造(通过隐式构造函数)

为了演示move语义,我编写了以下示例代码,其中包含来自int的隐式构造函数。structC{inti_=0;C(){}C(inti):i_(i){}C(constC&other):i_(other.i_){std::cout和autovec2=std::vector{1,2,3,4,5};cout有输出Acopyconstructionwasmade.1Acopyconstructionwasmade.2Acopyconstructionwasmade.3Acopyconstructionwasmade.4Acopyconstructionwasmade.5reversingAmov

c++ - 如何使用初始化列表 C++ 初始化数组

我有一个与C++数组和结构相关的问题。我有一个结构:structnpc_next_best_spot{npc_next_best_spot():x({0}),y({0}),value(-1),k(0),i({0}),triple_ress({0}),triple_number({0}),bigI(0){}intx[3];inty[3];doublevalue;intk;inti[3];inttriple_ress[3];inttriple_number[3];intbigI;};但这给出了警告"list-initializerfornon-classtypemustnotbeparen

查找目录中所有内容文本中不含某个特定字符串的文件列表

查找目录中所有内容中不含某个特定字符串的文件的列表find/your/search/dir-typef!-execgrep-q"PatternString"{}\;-print-typef表示只查找文件;!表示对匹配条件进行取反,即不含特定字符串;{}\; 将每个被找到的文件作为参数传递给find后面的grep命令,其中:  花括号是find命令使用的占位符,用于知道在何处插入当前正在使用的文件的文件名。  “;”表示到这里是每个文件执行的命令结束的位置。  “;”前面的\是转义符号,这样shell就不会解释它,并将它隐藏起来不被找到。

c++ - 获取字体列表 (Win32)

我想制作一个组合框,其中列出了所有计算机已安装的字体。我不确定这是怎么做到的。我需要访问注册表才能得到这个吗?谢谢 最佳答案 您应该使用Win32API函数EnumFontFamiliesEx.您调用该函数,传递一个匹配EnumFontFamExProc类型的回调函数.EnumFontFamiliesEx找到的每种字体都会调用一次回调函数。我建议使用unicode版本(EnumFontFamiliesExW),因为我已经看到ascii版本(EnumFontFamiliesExA)对于东亚语言字体显示出一些非常奇怪的行为。链接的文章有

c++ - STL vector 与列表 : Most efficient for graph adjacency lists?

列表在push_back时消耗大部分时间分配内存。另一方面,vector必须在需要调整大小时复制其元素。因此,哪个容器最有效地存储邻接表? 最佳答案 我不认为可以绝对肯定地回答这个问题。尽管如此,我估计vector至少有90%的机会会做得更好。邻接表实际上比许多应用程序更倾向于使用vector,因为邻接表中元素的顺序通常无关紧要。这意味着当你添加元素时,它通常是到容器的末尾,当你删除一个元素时,你可以先将它交换到容器的末尾,所以你只能在末尾添加或删除。是的,vector在扩展时必须复制或移动元素,但实际上这几乎从来不是一个实质性的问

c++ - 将接受花括号初始化列表并推导长度的数组类

以前有人问过这个问题,但我很想知道在较新的C++标准中是否有任何更改。任何当前或future的标准都是可以接受的。问:有没有办法创建一个Array类,它可以用braced-init-list初始化,而不必手动指定数组长度,元素存储在堆栈中,并且不不需要“make_array”函数。templatestructArray{Titems[N];};Arrayfoo={1,2,3};由于initializer_list没有根据大小进行模板化,因此使用它的构造函数将无法完成这项工作。C++17中的推导指南几乎有效,但您必须省略类型参数并且所有项目必须具有完全相同的类型Arrayfoo={1,2

c++ - 我将如何对列表进行排序并获得前 K 个元素? (STL)

我有一个doublevector。我想将它从高到低排序,并获取前K个元素的索引。std::sort只是就地排序,并不返回我认为的索引。有什么方法可以快速获取最大元素的前K个索引? 最佳答案 你可以使用nth_elementSTL算法-这将返回N个最大的元素(这是最快的方法,使用STL)然后对它们使用.sort,或者你可以使用partial_sort算法,如果你想对第一个K元素进行排序(:仅使用.sort很糟糕——它非常慢于您想要的目的。.sort是很棒的STL算法,但用于对整个容器进行排序,而不仅仅是前K个元素(;nth_eleme

c++ - 交换类型列表中的两种类型

为简单起见,让我们使用std::tuple作为我们的类型列表。在std::tuple中交换两种类型的最佳(简洁、最少递归等)方法是什么?通过使用索引说明功能:#includeintmain(){usingtuple_t=std::tuple;//int,void,doubleusingswapped_tuple_t=std::tuple;//double,void,intstatic_assert(std::is_same::type,swapped_tuple_t>::value,"!");} 最佳答案 #include#incl